package com.doit.day02;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;

//你只要获取到了我得MyIterator这个迭代器，那么你就可以调用我里面的hasNext和next方法 ==》 返回给你一个Hero对象
/*
    打开文件
    读取文件中的一行行数据
    将一行行数据封装成一个Hero对象返回

    //自定义一个迭代器：读取mysql的表 user_info   id name  age   gender
    我创建了你自定义的迭代器后
    每调用一次hasnext 和next 就读取表中的一行数据，并且封装成 json串返回给我

 */

public class MyIterator implements Iterator<Hero> {
    private BufferedReader br;
    private String line;

    public MyIterator() throws Exception {
        //打开文件
         br = new BufferedReader(new FileReader("data/hero.txt"));

    }


    @Override
    public boolean hasNext() {
        try {
            line = br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //3,轮子妈_180::20
        return line != null;
    }

    @Override
    public Hero next() {
        //3,轮子妈_180::20
        String[] arr = line.split(",");
        //轮子妈_180::20
        String[] arr1 = arr[1].split("_");
        //180::20
        String[] arr2 = arr1[1].split("::");
        return new Hero(Integer.parseInt(arr[0]),arr1[0],Integer.parseInt(arr2[0]),Integer.parseInt(arr2[1]));
    }
}




